#include <iostream>
#include <functional>

using namespace std;
using namespace std::placeholders;

struct my_struct
{
	void add(int a)
	{
		std::cout << a << endl;
	}

	void print(int a, int b, int c)
	{
		cout << a << endl;
		cout << b << endl;
		cout << c << endl;
	}
};

void main1()
{
	struct my_struct my_s;
	my_s.add(34);
	//绑定内部函数 （函数指针）
	auto func = bind(&my_struct::add,&my_s,_1); //_1表示一个参数
	//调用函数
	func(100);


	//多个参数的函数
	auto func1 = bind(&my_struct::print,&my_s,_1,_2,_3);
	func1(1,2,3);

	//函数指针,指明函数所在的结构体或者类(函数是在代码区,共有的,调用时,内部有一个this指针来表明是那个对象在调用)
	void(my_struct::*p)(int) = &my_struct::add;
	cin.get();
}